/***************************************************************************/
/* Procedimiento:  Aduana_CabotajeInsertar
/* Descripcion:   Insertar o Modifica una fila en la tabla Aduana_Cabotaje
/* Parametros:    ?InfoParametros
/*                pTransaccion. Numero identificador de la Transaccion
/*                pMensaje. Mensaje de comfirmacion o excepcion
/* Comentarios:         
/****************************************************************************/

PROCEDURE  Aduana_CabotajeInsertarModificar(pniddocumento NUMBER, pnvid NUMBER, pnidbuque NUMBER, 
								pbandera VARCHAR2, ppuertoorigen NUMBER, ppuertodestino NUMBER, 
								pnidcliente NUMBER, pnidagenteaduanal NUMBER, pnidtipocarga NUMBER, 
								pdescripcioncarga VARCHAR2, pestadosolicitud NUMBER,  pTransaccion OUT NUMBER, pMensaje OUT VARCHAR2)
AS
vExisteRegistro NUMBER(1);
BEGIN
  SELECT count(*)
  INTO   vExisteRegistro
  FROM   Aduana_Cabotaje
  WHERE  nidDocumento=pNidDocumento;
  
  IF vExisteRegistro=0 THEN
    INSERT INTO Aduana_Cabotaje
	           (nid, niddocumento, nvid, 
				nidbuque, bandera, puertoorigen, 
				puertodestino, nidcliente, nidagenteaduanal, 
				nidtipocarga, descripcioncarga, estadosolicitud)
    VALUES     (seq_Aduana_Cabotaje.nextval, pniddocumento, pnvid, 
				pnidbuque, pbandera, ppuertoorigen, 
				ppuertodestino, pnidcliente, pnidagenteaduanal, 
				pnidtipocarga, pdescripcioncarga, pestadosolicitud);
  ELSE
    UPDATE Aduana_Cabotaje
    SET    niddocumento=pniddocumento, nvid=pnvid, 
			nidbuque=pnidbuque, bandera=pbandera, puertoorigen=ppuertoorigen, 
			puertodestino=ppuertodestino, nidcliente=pnidcliente, nidagenteaduanal=pnidagenteaduanal, 
			nidtipocarga=pnidtipocarga, descripcioncarga=pdescripcioncarga, estadosolicitud=pestadosolicitud
    WHERE  nidDocumento=pNidDocumento;
  END IF;
  
  COMMIT;
  pTransaccion := 1;
  pMensaje := 'Terminado OK';
  dbms_output.put_line('Terminado OK');

EXCEPTION
  WHEN OTHERS THEN
    pTransaccion := 0;
    pMensaje := 'Error en  Aduana_Cabotaje_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm;
    dbms_output.put_line('Error en  Aduana_Cabotaje_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm);
END;
